package com.houweishi.module.copy.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.houweishi.common.annotation.Excel;
import com.houweishi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.Date;

/**
 * 审批抄送记录管理对象 biz_copy
 * 
 * @author houweishi
 * @date 2023-02-21
 */
@Data
public class BizCopy extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 申请人id */
//    @Excel(name = "申请人id")
    private Long userId;

    /** 申请人用户名 */
    @Excel(name = "申请人用户名")
    private String username;

    /** 申请表id */
//    @Excel(name = "申请表id")
    private Long applicationId;

    /** 申请表类型（请假，升职...) */
    @Excel(name = "申请表类型", readConverterExp = "申请表类型（请假，升职...)")
    private String applicationType;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 抄送人id */
//    @Excel(name = "审批人id")
    private Long copyerId;

    /** 抄送人姓名 */
    @Excel(name = "审批人姓名")
    private String copyerName;

    /** 抄送状态（0未读，1已读） */
    @Excel(name = "抄送状态", readConverterExp = "1=同意，2驳回")
    private String copyerStatus;

    /** 抄送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "抄送时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date copyerTime;

    /** 申请表类型id */
//    @Excel(name = "申请表类型id")
    private Long subscribePatternId;

    /** 申请表类型名称 */
    @Excel(name = "申请表类型名称")
    private String subscribePatternName;

    /** 职位等级 */
    @Excel(name = "职位等级")
    private Long positionLevel;

    /** 流水单号 */
    @Excel(name = "流水单号")
    private String serialNum;

    /** 自选字段 */
//    @Excel(name = "自选字段")
    private String fieldsNames ;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }
    public void setApplicationId(Long applicationId) 
    {
        this.applicationId = applicationId;
    }

    public Long getApplicationId() 
    {
        return applicationId;
    }
    public void setApplicationType(String applicationType) 
    {
        this.applicationType = applicationType;
    }

    public String getApplicationType() 
    {
        return applicationType;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("id", id)
                .append("userId", userId)
                .append("username", username)
                .append("applicationId", applicationId)
                .append("applicationType", applicationType)
                .append("delFlag", delFlag)
                .append("copyerId", copyerId)
                .append("copyerName", copyerName)
                .append("copyerStatus", copyerStatus)
                .append("copyerTime", copyerTime)
                .append("subscribePatternId", subscribePatternId)
                .append("subscribePatternName", subscribePatternName)
                .append("positionLevel", positionLevel)
                .append("serialNum", serialNum)
                .toString();
    }
}
